---
title: "AsyncDaytona"
hideTitleOnPage: true
---

## AsyncDaytona

```python
class AsyncDaytona()
```

Daytona API と対話するためのメインクラス。

このクラスは、Daytona サンドボックスの作成・管理・操作を非同期メソッドで提供します。
明示的な設定、または環境変数を用いて初期化できます。

**属性**:

- `volume` _AsyncVolumeService_ - ボリュームを管理するサービス。
- `snapshot` _AsyncSnapshotService_ - スナップショットを管理するサービス。
  

**例**:

  環境変数を使用する場合:
```python
async with AsyncDaytona() as daytona:  # Uses DAYTONA_API_KEY, DAYTONA_API_URL
    sandbox = await daytona.create()
```
  
  明示的な設定を使用する場合:
```python
config = DaytonaConfig(
    api_key="your-api-key",
    api_url="https://your-api.com",
    target="us"
)
try:
    daytona = AsyncDaytona(config)
    sandbox = await daytona.create()
finally:
    await daytona.close()
```

#### AsyncDaytona.__init__

```python
def __init__(config: Optional[DaytonaConfig] = None)
```

任意の設定で Daytona インスタンスを初期化します。

config が指定されていない場合、次の環境変数から読み取ります:
- `DAYTONA_API_KEY`: 認証に必要な API キー（必須）
- `DAYTONA_API_URL`: API の URL（必須）
- `DAYTONA_TARGET`: ターゲット環境（任意、デフォルトは 'us'）

**引数**:

- `config` _Optional[DaytonaConfig]_ - api_key、api_url、target を含むオブジェクト。
  

**送出**:

- `DaytonaError` - API キーが config または環境変数で提供されていない場合
  

**例**:

```python
from daytona import Daytona, DaytonaConfig
# 環境変数を使用
daytona1 = AsyncDaytona()
await daytona1.close()
# 明示的な設定を使用
config = DaytonaConfig(
    api_key="your-api-key",
    api_url="https://your-api.com",
    target="us"
)
daytona2 = AsyncDaytona(config)
await daytona2.close()
```

#### AsyncDaytona.__aenter__

```python
async def __aenter__()
```

非同期コンテキストマネージャへのエントリ。

#### AsyncDaytona.__aexit__

```python
async def __aexit__(exc_type, exc_value, traceback)
```

非同期コンテキストマネージャの終了—適切なクリーンアップを保証します。

#### AsyncDaytona.close

```python
async def close()
```

HTTP セッションを閉じてリソースをクリーンアップします。

このメソッドは AsyncDaytona インスタンスの使用を終えたときに呼び出し、
基盤となる HTTP セッションを適切に閉じてリソースリークを防ぎます。

**例**:

```python
daytona = AsyncDaytona()
try:
    sandbox = await daytona.create()
    # ... use sandbox ...
finally:
    await daytona.close()
```
  
  あるいは、非同期コンテキストマネージャとして使用するのが望ましいです:
```python
async with AsyncDaytona() as daytona:
    sandbox = await daytona.create()
    # ... use sandbox ...
# 自動的にクローズされます
```

#### AsyncDaytona.create

```python
@overload
async def create(params: Optional[CreateSandboxFromSnapshotParams] = None,
                 *,
                 timeout: Optional[float] = 60) -> AsyncSandbox
```

指定された、またはデフォルトのスナップショットからサンドボックスを作成します。言語、イメージ、環境変数、ボリュームなど、さまざまなパラメータを指定できます。

**引数**:

- `params` _Optional[CreateSandboxFromSnapshotParams]_ - サンドボックス作成用のパラメータ。指定しない場合は、
  デフォルトの Daytona スナップショットと Python 言語が使用されます。
- `timeout` _Optional[float]_ - サンドボックス作成のタイムアウト（秒）。0 はタイムアウトなしを意味します。
  デフォルトは 60 秒です。
  

**戻り値**:

- `Sandbox` - 作成されたサンドボックスインスタンス。
  

**送出**:

- `DaytonaError` - timeout、auto_stop_interval、または auto_archive_interval が負の場合、
  またはサンドボックスの起動に失敗した／タイムアウトした場合
  

**例**:

  デフォルトの Python サンドボックスを作成:
```python
sandbox = await daytona.create()
```
  
  カスタムサンドボックスを作成:
```python
params = CreateSandboxFromSnapshotParams(
    language="python",
    snapshot="my-snapshot-id",
    env_vars={"DEBUG": "true"},
    auto_stop_interval=0,
    auto_archive_interval=60,
    auto_delete_interval=120
)
sandbox = await daytona.create(params, timeout=40)
```

#### AsyncDaytona.create

```python
@overload
async def create(
        params: Optional[CreateSandboxFromImageParams] = None,
        *,
        timeout: Optional[float] = 60,
        on_snapshot_create_logs: Callable[[str], None] = None) -> AsyncSandbox
```

指定したレジストリで利用可能なイメージ、または宣言的な Daytona イメージからサンドボックスを作成します。
リソース、言語、イメージ、環境変数、ボリュームなど、さまざまなパラメータを指定できます。Daytona は指定されたイメージからスナップショットを作成し、それを用いてサンドボックスを作成します。

**引数**:

- `params` _Optional[CreateSandboxFromImageParams]_ - イメージからサンドボックスを作成するためのパラメータ。
- `timeout` _Optional[float]_ - サンドボックス作成のタイムアウト（秒）。0 はタイムアウトなしを意味します。
  デフォルトは 60 秒です。
- `on_snapshot_create_logs` _Callable[[str], None]_ - スナップショット作成ログを処理するコールバック関数。
  

**戻り値**:

- `Sandbox` - 作成されたサンドボックスインスタンス。
  

**例外**:

- `DaytonaError` - timeout、auto_stop_interval、または auto_archive_interval が負の場合、
  もしくはサンドボックスの起動に失敗した場合やタイムアウトした場合
  

**例**:

  既定の Python サンドボックスをイメージから作成:
```python
sandbox = await daytona.create(CreateSandboxFromImageParams(image="debian:12.9"))
```
  
  宣言的なイメージ定義からカスタムサンドボックスを作成:
```python
declarative_image = (
    Image.base("alpine:3.18")
    .pipInstall(["numpy", "pandas"])
    .env({"MY_ENV_VAR": "My Environment Variable"})
)
params = CreateSandboxFromImageParams(
    language="python",
    image=declarative_image,
    env_vars={"DEBUG": "true"},
    resources=Resources(cpu=2, memory=4),
    auto_stop_interval=0,
    auto_archive_interval=60,
    auto_delete_interval=120
)
sandbox = await daytona.create(
    params,
    timeout=40,
    on_snapshot_create_logs=lambda chunk: print(chunk, end=""),
)
```

#### AsyncDaytona.delete

```python
async def delete(sandbox: AsyncSandbox, timeout: Optional[float] = 60) -> None
```

サンドボックスを削除します。

**引数**:

- `sandbox` _Sandbox_ - 削除するサンドボックスインスタンス。
- `timeout` _Optional[float]_ - サンドボックス削除のタイムアウト（秒）。0 はタイムアウトなしを意味します。
  デフォルトは 60 秒です。
  

**例外**:

- `DaytonaError` - サンドボックスの削除に失敗した場合、またはタイムアウトした場合
  

**例**:

```python
sandbox = await daytona.create()
# ... use sandbox ...
await daytona.delete(sandbox)  # 完了時にクリーンアップ
```

#### AsyncDaytona.get

```python
@intercept_errors(message_prefix="Failed to get sandbox: ")
async def get(sandbox_id: str) -> AsyncSandbox
```

ID でサンドボックスを取得します。

**引数**:

- `sandbox_id` _str_ - 取得するサンドボックスの ID。
  

**戻り値**:

- `Sandbox` - サンドボックスインスタンス。
  

**例外**:

- `DaytonaError` - sandbox_id が指定されていない場合。
  

**例**:

```python
sandbox = await daytona.get("my-sandbox-id")
print(sandbox.status)
```

#### AsyncDaytona.find\_one

```python
@intercept_errors(message_prefix="Failed to find sandbox: ")
async def find_one(sandbox_id: Optional[str] = None,
                   labels: Optional[Dict[str, str]] = None) -> AsyncSandbox
```

ID またはラベルでサンドボックスを検索します。

**引数**:

- `sandbox_id` _Optional[str]_ - 取得するサンドボックスの ID。
- `labels` _Optional[Dict[str, str]]_ - サンドボックスをフィルタリングするためのラベル。
  

**戻り値**:

- `Sandbox` - ID またはラベルに一致する最初のサンドボックス。
  

**例外**:

- `DaytonaError` - サンドボックスが見つからない場合。
  

**例**:

```python
sandbox = await daytona.find_one(labels={"my-label": "my-value"})
print(f"Sandbox ID: {sandbox.id} State: {sandbox.state}")
```

#### AsyncDaytona.list

```python
@intercept_errors(message_prefix="Failed to list sandboxes: ")
async def list(labels: Optional[Dict[str, str]] = None) -> List[AsyncSandbox]
```

ラベルでフィルタリングされたサンドボックスの一覧を取得します。

**引数**:

- `labels` _Optional[Dict[str, str]]_ - サンドボックスをフィルタリングするためのラベル。
  

**戻り値**:

- `List[Sandbox]` - ラベルに一致するサンドボックスインスタンスのリスト。
  

**例**:

```python
sandboxes = await daytona.list(labels={"my-label": "my-value"})
for sandbox in sandboxes:
    print(f"{sandbox.id}: {sandbox.status}")
```

#### AsyncDaytona.start

```python
async def start(sandbox: AsyncSandbox, timeout: Optional[float] = 60) -> None
```

サンドボックスを起動し、準備完了になるまで待機します。

**引数**:

- `sandbox` _Sandbox_ - 起動するサンドボックス。
- `timeout` _Optional[float]_ - サンドボックスの起動完了を待機するタイムアウト（秒）。省略可。
  0 はタイムアウトなしを意味します。デフォルトは 60 秒です。
  

**例外**:

- `DaytonaError` - タイムアウトが負の値の場合、またはサンドボックスの起動に失敗した場合・タイムアウトした場合

#### AsyncDaytona.stop

```python
async def stop(sandbox: AsyncSandbox, timeout: Optional[float] = 60) -> None
```

サンドボックスを停止し、停止完了まで待機します。

**引数**:

- `sandbox` _Sandbox_ - 停止するサンドボックス。
- `timeout` _Optional[float]_ - サンドボックスの停止完了を待機するタイムアウト（秒）。省略可。
  0 はタイムアウトなしを意味します。デフォルトは 60 秒です。
  

**例外**:

- `DaytonaError` - タイムアウトが負の値の場合、またはサンドボックスの停止に失敗した場合・タイムアウトした場合


## CodeLanguage

```python
@dataclass
class CodeLanguage(Enum)
```

Daytona がサポートするプログラミング言語

**列挙体メンバー**:
    - `PYTHON` ("python")
    - `TYPESCRIPT` ("typescript")
    - `JAVASCRIPT` ("javascript")

## DaytonaConfig

```python
class DaytonaConfig(BaseModel)
```

Daytona クライアントを初期化するための設定オプション。

**属性**:

- `api_key` _Optional[str]_ - Daytona API への認証に使用する API キー。未設定の場合は
  環境変数 `DAYTONA_API_KEY` で指定するか、代わりに JWT トークンを指定する必要があります。
- `jwt_token` _Optional[str]_ - Daytona API への認証に使用する JWT トークン。未設定の場合は
  環境変数 `DAYTONA_JWT_TOKEN` で指定するか、代わりに API キーを指定する必要があります。
- `organization_id` _Optional[str]_ - JWT ベース認証で使用する組織 ID。JWT トークンが指定されている場合は必須で、
  ここで指定するか、環境変数 `DAYTONA_ORGANIZATION_ID` に設定する必要があります。
- `api_url` _Optional[str]_ - Daytona API の URL。ここまたは環境変数 `DAYTONA_API_URL` で未設定の場合は、
  既定値は `'https://app.daytona.io/api'` です。
- `server_url` _Optional[str]_ - 廃止予定。代わりに `api_url` を使用してください。このプロパティは
  将来のバージョンで削除されます。
- `target` _Optional[str]_ - サンドボックスのターゲットとなるランナーのロケーション。ここまたは
  環境変数 `DAYTONA_TARGET` で未設定の場合は、既定で `'us'` になります。
  

**例**:

```python
config = DaytonaConfig(api_key="your-api-key")
```
```python
config = DaytonaConfig(jwt_token="your-jwt-token", organization_id="your-organization-id")
```

## CreateSandboxBaseParams

```python
class CreateSandboxBaseParams(BaseModel)
```

新しいサンドボックスを作成するための基本パラメータ。

**属性**:

- `language` _Optional[CodeLanguage]_ - サンドボックスのプログラミング言語。既定は "python"。
- `os_user` _Optional[str]_ - サンドボックスの OS ユーザー。
- `env_vars` _Optional[Dict[str, str]]_ - サンドボックスで設定する環境変数。
- `labels` _Optional[Dict[str, str]]_ - サンドボックスのカスタムラベル。
- `public` _Optional[bool]_ - サンドボックスを公開にするかどうか。
- `timeout` _Optional[float]_ - サンドボックスの作成と起動のタイムアウト（秒）。
- `auto_stop_interval` _Optional[int]_ - サンドボックスでイベントが発生しない場合に、
  自動的に停止するまでの間隔（分）。既定は 15 分。
  0 は自動停止なしを意味します。
- `auto_archive_interval` _Optional[int]_ - 連続して停止状態のサンドボックスが
  自動的にアーカイブされるまでの間隔（分）。既定は 7 日。
  0 は最大の間隔が使用されることを意味します。
- `auto_delete_interval` _Optional[int]_ - 連続して停止状態のサンドボックスが
  自動的に削除されるまでの間隔（分）。既定では自動削除は無効です。
  負の値は無効、0 は停止と同時に即削除を意味します。
- `volumes` _Optional[List[VolumeMount]]_ - サンドボックスにアタッチするボリュームのマウント一覧。
- `network_block_all` _Optional[bool]_ - サンドボックスのすべてのネットワークアクセスをブロックするかどうか。
- `network_allow_list` _Optional[str]_ - サンドボックスで許可する CIDR ネットワークアドレスのカンマ区切りリスト。

## CreateSandboxFromImageParams

```python
class CreateSandboxFromImageParams(CreateSandboxBaseParams)
```

イメージから新規サンドボックスを作成するためのパラメータ。

**属性**:

- `image` _Union[str, Image]_ - サンドボックスで使用するカスタム Docker イメージ。Image オブジェクトが渡された場合は、
  イメージが動的にビルドされます。
- `resources` _Optional[Resources]_ - サンドボックスのリソース設定。指定しない場合、サンドボックスは
  デフォルトのリソースを使用します。

## CreateSandboxFromSnapshotParams

```python
class CreateSandboxFromSnapshotParams(CreateSandboxBaseParams)
```

スナップショットから新しいサンドボックスを作成するためのパラメーター。

**属性**:

- `snapshot` _Optional[str]_ - サンドボックスに使用するスナップショットの名前。

